home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 June / ccd0605.iso / Software / Freeware / Programare / highlight / highlight-W32GUI-2.2-10b-Setup.exe / {app} / src / texgenerator.h < prev    next >
C/C++ Source or Header  |  2005-02-26  |  2KB  |  84 lines

  1. /***************************************************************************
  2.                           texcode.h  -  description
  3.                              -------------------
  4.     begin                : Mit Jul 24 2002
  5.     copyright            : (C) 2002 by AndrΘ Simon
  6.     email                : andre.simon1@gmx.de
  7.  ***************************************************************************/
  8.  
  9. /***************************************************************************
  10.  *                                                                         *
  11.  *   This program is free software; you can redistribute it and/or modify  *
  12.  *   it under the terms of the GNU General Public License as published by  *
  13.  *   the Free Software Foundation; either version 2 of the License, or     *
  14.  *   (at your option) any later version.                                   *
  15.  *                                                                         *
  16.  ***************************************************************************/
  17.  
  18. #ifndef TEXGENERATOR_H
  19. #define TEXGENERATOR_H
  20.  
  21. #include <string>
  22. #include <iostream>
  23. #include <sstream>
  24.  
  25. #include "charcodes.h"
  26. #include "version.h"
  27. #include "codegenerator.h"
  28.  
  29.  
  30. namespace highlight {
  31.  
  32. /**
  33.    \brief This class generates TeX.
  34.  
  35.    It contains information about the resulting document structure (document
  36.    header and footer), the colour system, white space handling and text
  37.    formatting attributes.
  38.  
  39. * @author Andre Simon
  40. */
  41.  
  42. class TexGenerator : public highlight::CodeGenerator
  43.   {
  44.   public:
  45.  
  46.    /** Constructor
  47.      \param colourTheme Name of Colour theme to use
  48.     */
  49.     TexGenerator(const string &colourTheme);
  50.     TexGenerator();
  51.     ~TexGenerator();
  52.  
  53.    /** prints document header
  54.        \param  title Title of the document
  55.     */
  56.     string getHeader(const string & title);
  57.  
  58.     /** Prints document footer*/
  59.     string getFooter();
  60.  
  61.     /** Prints document body*/
  62.     void printBody();
  63.  
  64.   private:
  65.  
  66.       string styleDefinitionCache;
  67.  
  68.       string getStyleDefinition();
  69.  
  70.     /** \return escaped character*/
  71.     virtual string maskCharacter(unsigned char );
  72.  
  73.     /**\return text formatting attributes in RTF format */
  74.     string formatStyleAttributes(const string & elemName, const ElementStyle & elem);
  75.  
  76.     string getMatchingOpenTag(unsigned int styleID);
  77.     string getMatchingCloseTag(unsigned int styleID);
  78.  
  79.   };
  80.  
  81. }
  82.  
  83. #endif
  84.